// Adafruit IO Temperature & Humidity Example // Tutorial Link: https://learn.adafruit.com/adafruit-io-basics-temperature-and-humidity // // Adafruit invests time and resources providing this open source code. // Please support Adafruit and open source hardware by purchasing // products from Adafruit! // // Written by Todd Treece for Adafruit Industries // Copyright (c) 2016-2017 Adafruit Industries // Licensed under the MIT license. // // All text above must be included in any redistribution. /************************** Configuration ***********************************/ // edit the config.h tab and enter your Adafruit IO credentials // and any additional configuration needed for WiFi, cellular, // or ethernet clients. #include "config.h" /************************ Example Starts Here *******************************/ #include #include #include // pin connected to DH22 data line #define DATA_PIN 13 // create DHT22 instance DHT_Unified dht(DATA_PIN, DHT11); // set up the 'temperature' and 'humidity' feeds AdafruitIO_Feed *temperature = io.feed("temperature"); AdafruitIO_Feed *humidity = io.feed("humidity"); AdafruitIO_Feed *pwm = io.feed("pwm"); void setup() { pinMode(2,OUTPUT); // start the serial connection Serial.begin(115200); // wait for serial monitor to open while(! Serial); // initialize dht22 dht.begin(); // connect to io.adafruit.com Serial.print("Connecting to Adafruit IO"); io.connect(); pwm->onMessage(handleMessage); // wait for a connection while(io.status() < AIO_CONNECTED) { Serial.print("."); delay(500); } // we are connected Serial.println(); Serial.println(io.statusText()); } void loop() { // io.run(); is required for all sketches. // it should always be present at the top of your loop // function. it keeps the client connected to // io.adafruit.com, and processes any incoming data. io.run(); sensors_event_t event; dht.temperature().getEvent(&event); float celsius = event.temperature; Serial.print("celsius: "); Serial.print(celsius); Serial.println("C"); // save fahrenheit (or celsius) to Adafruit IO temperature->save(celsius); dht.humidity().getEvent(&event); Serial.print("humidity: "); Serial.print(event.relative_humidity); Serial.println("%"); // save humidity to Adafruit IO humidity->save(event.relative_humidity); // wait 5 seconds (5000 milliseconds == 5 seconds) delay(5000); } void handleMessage(AdafruitIO_Data *data) { // When received a position Serial.print("received <- "); String value = data->value(); Serial.println(value); analogWrite(2, value.toInt()); }